To improve the performance capability of a microprocessor, it is often desirable to increase the speed or clock rate at which the microprocessor operates. Higher clock rates may be possible by reducing the amount of time it takes for a particular circuit within the microprocessor to process its input signals and provide its output signal. To this end, various dynamic logic circuits have been developed that have improved performance characteristics as compared to some traditional complementary metal-oxide semiconductor (CMOS) circuits. Examples of such dynamic logic circuits include domino logic circuits, skew tolerant domino circuits, latched domino circuits, differential domino circuits, and the like.
However, as the operational speed of the circuits within an integrated circuit is increased, race conditions within the integrated circuit may occur. To address the problems associated with race conditions, a clock is often used to synchronize the operation of circuits within the integrated circuit relative to each other. Examples of such circuits are summarized in Chapter Four of xe2x80x9cLow-Voltage CMOS VLSI Circuit,xe2x80x9d by Luo et al. (1999) and Chapter 5.7 of xe2x80x9cCircuit Design for CMOS VLSI,xe2x80x9d by John P. Uyemyra (1992).
The use of a clock may reduce the risk that the output provided by a fast circuit to a slower circuit changes before the slower circuit is able to properly process the output of the faster circuit. However, the use of a clock may also regulate or delay the operation of the fastest sub-circuits within an integrated circuit. This, in turn, may not allow the faster sub-circuits within the integrated circuit to take advantage of time-borrowing (e.g., process input signals as soon as the input signals are provided to the sub-circuit). Furthermore, a clock may also be used to hold a sub-circuit in a precharge state until the sub-circuit is allowed to process information. Thus, the use of a clock may result in a circuit being in a precharge condition during a portion of the clock cycle. This may result in the integrated circuit consuming more current, which is generally not desirable in low-power applications. Thus, there is a continuing need for better ways to improve the performance of an integrated circuit while reducing its power consumption.